//
//  HomeViewController.swift
//  swiftweibo
//
//  Created by 吕建发 on 16/5/10.
//  Copyright © 2016年 cn.itcast. All rights reserved.
//

import UIKit

let ID = "cell"


class HomeViewController: RootViewController {
    
    private lazy var datalist = [Int]()
    
    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: ID)
        
        // 设置刷新控件
        setUpRefresh()
        
        // 设置访客视图
       visitorView?.setUpSubView(messageTitle: "关注一些人，回这里看看有什么惊喜")
    }

    // MARK: - 刷新的方法
    override func loadData() {
        
        // 定义默认Index
        let defaultIndex = 100
        
        // 判断是不是正在上拉加载
        let isPulling = footerRefresh.isAnimating()
     
        // 开线程 模仿异步加载
        dispatch_async(dispatch_get_global_queue(0, 0)) {
            
            NSThread.sleepForTimeInterval(10.0)
            
            // 下拉的索引
            let startDownIndex = self.datalist.first ?? defaultIndex
            
            // 上拉的索引
            let startUpIndex = self.datalist.last ?? 0
            
            
            // 上拉加载更多
            if isPulling{
                
                // 定义一个可变的数组
                var arrM = [Int]()
                
                // 给数组增加元素
                for i in (0..<10) {
                    arrM.append(startUpIndex - i - 1)
                }
                
                self.datalist = self.datalist + arrM
                
                
                
            }else{
                // 定义一个可变的数组
                var arrM = [Int]()
                
                // 给数组增加元素
                for i in (0..<10).reverse() {
                    arrM.append(i + startDownIndex + 1)
                }
                
                self.datalist = arrM + self.datalist
                
                
            }
            
        }
        
        dispatch_async(dispatch_get_main_queue()) {
            self.tableView.reloadData()
            
            self.footerRefresh.stopAnimating()
            
            self.refreshControl.endRefreshing()
        }
        
    }
}


// MARK: - tableViewDateSource   delegate
extension HomeViewController {
    
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return datalist.count
    }
    
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCellWithIdentifier(ID, forIndexPath: indexPath)
        
        
        
        cell.textLabel?.text = "\(datalist[indexPath.row])"
        
        
        return cell;
    }
}









